import { toast, modal } from '../../utils/extendApi';
import { reqLogin, reqUserInfo } from '../../api/user';
import { getStorage, setStorage, clearStorage, removeStorage } from '../../utils/storage';
import { loginif, randomNameOrImg } from '../../utils/common';
import { reqCountQuansData } from '../../api/quan';
Page({
  data: {
    iflogin: false, // 是否登录
    show: false, // 授权显示
    username: '',
    avatarUrl: '/images/icons/goddess.png', // 微信头像路径
    nickName: '',
    userinfo: '', // 用户信息
    countquan: '' // 优惠券数量
  },

  /**
   * 用户授权登录
   */
  login() {
    wx.login({
      success: async ({ code }) => {
        console.log(code);
        if (code) {
          try {
            if (this.data.nickName == '') {
              toast({ title: '请输入昵称' });
            } else {
              const user = {
                "openid": code,
                "username": this.data.nickName,
                "userurl": this.data.avatarUrl
              }
              const res = await reqLogin(user);
              console.log(res.data.openid);
              // 存入本地
              if (res.data.token != '') {
                // 本地存储 token
                setStorage('token', res.data.token);
                // 调用获取用户的接口
                const userinfo = await reqUserInfo(res.data.openid);
                if (userinfo.data != null) {
                  // 存储本地
                  setStorage('userinfo', userinfo.data);
                  this.setData({ iflogin: true, show: false, userinfo: userinfo.data });
                  // 储存全局登录状态
                  setStorage('iflogin', true);
                  // 获取优惠券数量
                  this.fetchCountQuansData(userinfo.data.userid);
                }
              } else {
                console.error('储存异常！');
              }
            }
          } catch (error) {
            console.error('登录异常:', error);
            toast({ title: '登录异常，请稍后重试' });
          }
        }
      },
    })
  },

  // 退出登录
  logout: async function() {
    const confirm = await modal({ content: "确定要退出吗？" });
    if (confirm) {
      // 清楚所有缓存
      clearStorage();
      this.setData({
        iflogin: false,
        countquan: ''
      });
    }
  },

  // 随机昵称头像
  randomUser() {
    const res = randomNameOrImg();
    this.setData({
      nickName: res.username,
      avatarUrl: res.userurl
    })
  },

  // 获取用户姓名
  onNickNameInput(e) {
    try {
      const nickName = e.detail.value;
      this.setData({ nickName });
      console.log('用户昵称:', nickName);
      // 这里可以保存到全局或发送到服务器
    } catch (error) {
      console.error('获取用户昵称异常:', error);
      toast({ title: '获取用户昵称异常，请稍后重试' });
    }
  },

  // 获取头像回调
  onChooseAvatar(e) {
    try {
      const { avatarUrl } = e.detail; // 微信返回的头像URL
      this.setData({
        avatarUrl // 更新页面头像
      });
    } catch (error) {
      console.error('获取用户头像异常:', error);
      toast({ title: '获取用户头像异常，请稍后重试' });
    }
  },

  // 点击收货地址
  address() {
    // 判断是否登录
    const yes = loginif();
    if (!yes) {
      toast({ title: '请先登录' });
      return
    }
    wx.navigateTo({
      url: '/pages/address/address'
    });
  },

  // 点击优惠券
  gotoquan() {
    // 判断是否登录
    const yes = loginif();
    if (!yes) {
      toast({ title: '请先登录' });
      return
    }
    wx.navigateTo({
      url: '/pages/quan/quan'
    });
  },

  // 点击我的售后
  shouhou() {
    // 判断是否登录
    const yes = loginif();
    if (!yes) {
      toast({ title: '请先登录' });
      return
    }
    // 跳转到查看我申请退款的订单
    wx.navigateTo({
      url: '/pages/applyrefund/applyrefund'
    });
  },

  // 点击关于我们页面
  about() {
    wx.navigateTo({
      url: '/pages/aboutUs/aboutUs'
    });
  },

  // 点击显示登录授权选项
  loginshow() {
    this.setData({
      show: true
    });
  },

  onClose() {
    this.setData({ show: false });
  },

  // 点击头像进入修改个人信息页面
  clickImgs() {
    wx.navigateTo({
      url: '/pages/owenrdetail/owenrdetail'
    });
  },

  // 获取手机号
  getphonenumber(event) {
    console.log("快速获取验证的方法");
    console.log(event);
  },

  // 点击我的工具里面的图标
  clicktools() {
    wx.navigateTo({
      url: '/pages/checkout/checkout'
    });
  },

  // 跳转页面函数
  goToAllOrdersPage: function() {
    wx.navigateTo({
      url: '/pages/index/list/list' // 这里的路径替换为实际“全部订单”页面的路径
    });
  },

  // 检查登录状态
  checkLoginStatus: function() {
    const iflogin = wx.getStorageSync('iflogin');
    if (iflogin) {
      this.setData({
        iflogin: true
      });
    }
  },

  // 模拟登录（仅用于测试）
  mockLogin: function() {
    // 设置登录状态
    wx.setStorageSync('iflogin', true);
    this.setData({
      iflogin: true
    });
  },

  // 获取优惠券数量
  fetchCountQuansData: function(userId) {
    reqCountQuansData(userId)
      .then(res => {
        console.log("优惠券数量 API 响应:", res);
        if (res > 0) {
          // 假设接口返回的数据是一个数字
          this.setData({
            countquan: res
          });
        } else {
          throw new Error(res.msgerr || '获取优惠券数量失败');
        }
      })
      .catch(err => {
        console.error('获取优惠券数量失败:', err);
        wx.showToast({
          title: err.message || '获取优惠券数量失败',
          icon: 'none'
        });
      });
  },

  // 生命周期函数--监听页面加载
  onLoad: function() {
    // 检查 token 是否存在
    const token = getStorage("token");
    if (token != null) {
      // 获取用户信息
      const userinfo = getStorage("userinfo");
      this.setData({ userinfo: userinfo, iflogin: true });
      // 获取优惠券数量
      this.fetchCountQuansData(userinfo.userid);
    } else {
      this.setData({ iflogin: false });
    }
    wx.setNavigationBarColor({
      backgroundColor: '#FFB5C5',
      frontColor: '#000000',
      animation: {
        duration: 400,
        timingFunc: 'easeIn'
      }
    });
    wx.setNavigationBarTitle({
      title: '个人中心'
    });
  },

  // 其他生命周期函数和方法...
});